import {
  IsBoolean,
  IsEnum,
  IsNumber,
  IsOptional,
  IsString,
} from 'class-validator';
import { Nullable } from 'src/types/Nullable';

export enum MediaType {
  IMAGE = 'IMAGE',
}

export class FileUploadDetails {
  bucket: string;
  ext: string;
  mimitype: string;
}

export class MediaFileOptions {
  @IsEnum(MediaType)
  type: MediaType;

  @IsOptional()
  @IsBoolean()
  public: boolean;
}

export class FileMetadata {
  constructor(
    private relativePath: string,
    private size: number,
    private ext: string,
    private mimetype: string,
  ) {}
  // @IsString()
  // relativePath: string;

  // @IsOptional()
  // @IsNumber()
  // size: Nullable<number>;

  // @IsOptional()
  // @IsString()
  // ext: Nullable<string>;

  // @IsOptional()
  // @IsString()
  // mimetype: Nullable<string>;
}
